package com.qsl.ssyx.common.exception;

import com.qsl.ssyx.common.result.Result;
import org.omg.CORBA.SystemException;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestControllerAdvice;

/**
 * 系统异常
 */
@RestControllerAdvice // 开启异常处理器(AOP实现)
public class ProjectExceptionAdvice {

    // 全局异常
    @ExceptionHandler(Exception.class)
    @ResponseBody // 返回json数据
    public Result error(Exception e) {
        e.printStackTrace();
        return Result.fail("系统繁忙，请稍后重试！");
    }

    // （特定异常处理）系统异常
    @ExceptionHandler(SystemException.class)
    @ResponseBody // 返回json数据
    public Result error(SystemException e) {
        e.printStackTrace();
        return Result.fail("系统繁忙，请稍后重试!!!");
    }

    // 自定义异常
    @ExceptionHandler(BusinessException.class)
    @ResponseBody // 返回json数据
    public Result error(BusinessException e) {
        return Result.build(null, e.getCode(), e.getMessage());
    }
}
